iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
0
自我挑戰組

學習 Android Kotlin 隨筆系列 第 27

[ Day 27 ] Google Drive 自動化上傳資料庫檔案(小筆記)

  • 分享至 

  • xImage
  •  

前言

這篇是在筆記如何使用自動化備份的程式,因為上傳 google drive 的 python 檔案是參考其他人的方法,有部分細節自己也不是很懂(但是能夠執行成功就是了),程式碼都在參考文章裡面,就不額外提供囉!

目的是為了要在每天的半夜 12 點,把資料庫 export 成一個檔案,並且上傳到 google drive 裡面,使用的技術包含了 crontab 以及參考了一份 dataUpload.py 檔案,並且申請了一個雲端帳號來做存放。

Project

  • dataBackUp.sh 執行內容
    mysqldump -h 0.0.0.0 -u root -ppassword nckuhub > nckuhub.sql
    python3 /root/dataBackup/dataUpload.py
  1. 備份 mysql 檔案變成 nckuhub.sql
    • 指令裡如果沒有加上 -h 0.0.0.0 會出錯
  2. 上傳到 google drive
  • config.jsondataUpload.py
    • 照著文章 Automated Google Drive File Backup 生好 config.json,並且參考裡頭的 gdrive_auto_backup.py 改名成 dataUpload.py
      • dataUpload.py 裡的開頭註解有說要先 pip3 install 哪些套件
  • crontab
    • 正常的使用 crontab (教學)crontab -e 做編輯,但是在 /etc/crontab 下面寫入,似乎機器就會跑了,可以省去執行指令
    • linux 會照著 crontab 檔案裡面的時間定期的跑(目前是每天晚上 0:00 時會備份上傳一次)
    • 要注意執行檔案的位置不在 Default PATH 下面,所以在那些 python 檔案裡在 import 時都要使用 絕對路徑

筆記

  • Service account 看起來是一個專門提供 google api 的地方,讓別人間接的透過他去 access 到 user,另外user account (nckuhub@gmail.com) 並不是 service account,所以在 dataUpload.py 裡面還有要特別去授權給某個 email address,如果不授權的話沒辦法進到 service 的 google drive 裡頭(即使是用 user 去生出一個 service account,但是上傳到 gdrive 這動作是進到 ==service== 的帳戶而不是 user 的),值得一提是,service account 沒辦法透過瀏覽器登入(Differences 那篇文章有提到,建議看一看~才比較看得懂我的筆記)

  • 參考文章 Automated Google Drive File BackupDifferences between service/user account

    有時候開 google chrome 登入 nckuhub G-Drive 沒辦法下載 sql 檔案,這時候要透過無痕視窗才可以下載,很怪,似乎跟 cache 有關


上一篇
[ Day 26 ] Java 專案 - Java.Swing 元件心得!
下一篇
[ Day 28 ] Java 專案 - Java.Swing ViewGroup 的觸發事件問題
系列文
學習 Android Kotlin 隨筆30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言